package com.cote.douhahou.pretloan.launcher;

import static com.cote.douhahou.pretloan.utils.AkomapaLendConfigs.PermissionInfoList;
import static com.cote.douhahou.pretloan.utils.AkomapaLendConfigs.SlidMinOffset;

import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

import com.cote.douhahou.pretloan.utils.AkomapaLendUtil;
import com.cote.douhahou.pretloan.R;
import com.cote.douhahou.pretloan.beans.PermissAkomapalendionInfo;

import java.util.ArrayList;

public class Permission_akomapalendPicker_akomapalendView extends RelativeLayout {

    private HorizontalScrollView scrol_akomapalendlView;
    private LinearLayout grou_akomapalendpLa_akomapalendyout;

    private float po_akomapalendsX =0, curPo_akomapalendsX =0;

    private final ArrayList<PermissionAkomapalendItemManager> permiss_akomapalendionItems = new ArrayList<>();

    private int selectPermis_akomapalendsion = 0;

    private int itemW_akomapalendidth = 0;

    private PermissioAkomapalendnSelectListener permissionSel_akomapalendectListener;

    public Permission_akomapalendPicker_akomapalendView(Context con_akomapalendtext) {
        super(con_akomapalendtext);
        init(con_akomapalendtext);
    }

    public Permission_akomapalendPicker_akomapalendView(Context cont_akomapalendext, AttributeSet att_akomapalendrs) {
        super(cont_akomapalendext, att_akomapalendrs);
        init(cont_akomapalendext);
    }

    public Permission_akomapalendPicker_akomapalendView(Context conte_akomapalendxt, AttributeSet att_akomapalendrs, int defSt_akomapalendyleAttr) {
        super(conte_akomapalendxt, att_akomapalendrs, defSt_akomapalendyleAttr);
        init(conte_akomapalendxt);
    }

    private void init(Context cont_akomapalendext){
        View vi_akomapalendew = View.inflate(cont_akomapalendext, R.layout.view_permission_select,this);
        scrol_akomapalendlView = vi_akomapalendew.findViewById(R.id.vppa_scrollview);
        grou_akomapalendpLa_akomapalendyout = vi_akomapalendew.findViewById(R.id.vppa_layout_group);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        initAfterIn_akomapalendvalidate();
    }

    @SuppressLint("ClickableViewAccessibility")
    private void initAfterIn_akomapalendvalidate(){

        for (PermissAkomapalendionInfo permissi_akomapalendonInfo: PermissionInfoList){
            addI_akomapalendtem(permissi_akomapalendonInfo);
        }

        int screenWi_akomapalenddth = AkomapaLendUtil.deviceScreenWidth(getContext());//px

        itemW_akomapalendidth = screenWi_akomapalenddth/3;

        grou_akomapalendpLa_akomapalendyout.setPadding(itemW_akomapalendidth,0, itemW_akomapalendidth,0);

        for (PermissionAkomapalendItemManager itemManager: permiss_akomapalendionItems){
            itemManager.setItemWi_akomapalenddth(itemW_akomapalendidth);
        }

        scrol_akomapalendlView.setOnTouchListener((v, event) -> {

            switch (event.getAction()){
                case MotionEvent.ACTION_DOWN:
                    po_akomapalendsX = event.getX();
                    break;
                case MotionEvent.ACTION_MOVE:
                    curPo_akomapalendsX = event.getX();
                    break;
                case MotionEvent.ACTION_UP:
                    if (curPo_akomapalendsX - po_akomapalendsX >0 && (Math.abs(curPo_akomapalendsX - po_akomapalendsX) > SlidMinOffset)) {
                        //左滑
                        setSelectPermis_akomapalendsion(selectPermis_akomapalendsion -1);
                    } else if (curPo_akomapalendsX - po_akomapalendsX <0 && (Math.abs(curPo_akomapalendsX - po_akomapalendsX) > SlidMinOffset)) {
                        //右滑
                        setSelectPermis_akomapalendsion(selectPermis_akomapalendsion +1);
                    }
                    break;
            }

            return true;
        });

    }

    private void addI_akomapalendtem(PermissAkomapalendionInfo permissionInfo){
        View it_akomapalendem = View.inflate(getContext(), R.layout.item_permission_select,null);
        PermissionAkomapalendItemManager permis_akomapalendsionItem = new PermissionAkomapalendItemManager(it_akomapalendem,permissionInfo);

        permiss_akomapalendionItems.add(permis_akomapalendsionItem);
        grou_akomapalendpLa_akomapalendyout.addView(it_akomapalendem);
    }

    public void setSelectPermis_akomapalendsion(int selectPermis_akomapalendsion) {

        if (selectPermis_akomapalendsion <0|| selectPermis_akomapalendsion >= permiss_akomapalendionItems.size()) return;
        this.selectPermis_akomapalendsion = selectPermis_akomapalendsion;

        scrol_akomapalendlView.smoothScrollTo(itemW_akomapalendidth * selectPermis_akomapalendsion, scrol_akomapalendlView.getScrollY());

        for (int i = 0; i< permiss_akomapalendionItems.size(); i++){
            PermissionAkomapalendItemManager permissionItem = permiss_akomapalendionItems.get(i);
            permissionItem.setS_akomapalendelect(i== selectPermis_akomapalendsion);
        }

        if (permissionSel_akomapalendectListener !=null) permissionSel_akomapalendectListener.onSelectP_akomapalendermission(selectPermis_akomapalendsion);

    }

    public void setPermissionSel_akomapalendectListener(PermissioAkomapalendnSelectListener permissionSel_akomapalendectListener) {
        this.permissionSel_akomapalendectListener = permissionSel_akomapalendectListener;
    }

}
